package br.ufrn.execicios.jsf.dataServer;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import br.ufrn.execicios.jsf.models.Anuncio;
import br.ufrn.execicios.jsf.models.Comentario;
import br.ufrn.execicios.jsf.models.Usuario;

@SuppressWarnings("serial")
public class DB implements Serializable {

	private static DB db;
	private List<Anuncio> anuncios = new ArrayList<Anuncio>();
	private List<Usuario> usuarios = new ArrayList<Usuario>();
	
	private DB() {
		super();
		// TODO Auto-generated constructor stub
	}
	public static DB getInstance(){
		if(db==null){
			db= new DB();
			db.startDB();
		}
		return db;
	}
	public List<Anuncio> getAnuncios() {
		return anuncios;
	}
	public List<Usuario> getUsuarios() {
		return usuarios;
	}
	private void startDB() {
		// usuario 1
		Usuario usr1 = new Usuario();
		usr1.setNome("usuario1");
		usr1.setSenha("senha1");
		usr1.setEmail("usuario01@email.com");
		usr1.setCodigo(usuarios.size()+1);
		usuarios.add(usr1);
		
		// usuario 2
		Usuario usr2 = new Usuario();
		usr2.setNome("usuario2");
		usr2.setSenha("senha2");
		usr2.setEmail("usuario2@email.com");
		usr2.setCodigo(usuarios.size()+1);
		usuarios.add(usr2);
		

		// anuncio1
		Anuncio anuncio1 = new Anuncio();
		anuncio1.setData(new Date());
		anuncio1.setTitulo("Produto muito bom 1");
		anuncio1.setDescricao("Descricao bacana do produto 1");
		anuncio1.setUsuario(usr1);
		anuncio1.getComentarios().add(
				new Comentario("comentario 1", "teste novo"));
		anuncio1.getComentarios().add(
				new Comentario("comentario 2", "teste novo"));
		anuncio1.setCodigo(anuncios.size()+1);
		anuncios.add(anuncio1);

		// anuncio 2
		Anuncio anuncio2 = new Anuncio();
		anuncio2.setData(new Date());
		anuncio2.setTitulo("Produto bacana 2");
		anuncio2.setDescricao("Descricao do produto 2");
		anuncio2.setUsuario(usr1);		
		anuncio2.setCodigo(anuncios.size()+1);
		
		anuncios.add(anuncio2);

		// anuncio 3
		Anuncio anuncio3 = new Anuncio();
		anuncio3.setData(new Date());
		anuncio3.setTitulo("Super produto 3");
		anuncio3.setDescricao("Descricao do produto 3");
		anuncio3.setUsuario(usr2);
		anuncio3.getComentarios().add(
				new Comentario("vai produto", "teste novo"));
		anuncio3.setCodigo(anuncios.size()+1);
		
		anuncios.add(anuncio3);
		
		
		
		
		
		//
		
	}
	

	
}
